function manutencaoPermissao(acao, cod_permissao) {
    try {
        $("#progress").show();
        var consulta;
        var inclusao;
        var alteracao;
        var exclusao;
        var cod_recurso;
        var cod_grupo = cod_grupo_consulta;
        if (acao == 'cadastrar') {
            consulta = $("#consulta_cadastrar").is(':checked');
            inclusao = $("#inclusao_cadastrar").is(':checked');
            alteracao = $("#alteracao_cadastrar").is(':checked');
            exclusao = $("#exclusao_cadastrar").is(':checked');
            cod_recurso = $("#cod_recurso_cadastrar").val();
            if (cod_recurso == '') {
                showMessage(ERROR_MESSAGE, "Recurso inválido!");
                return;
            }
        }
        $.ajax({
            type: "POST",
            url : "../controllers/PermissaoController.php",
            data : {
                cod_permissao : cod_permissao,
                consulta : consulta,
                inclusao : inclusao,
                alteracao : alteracao,
                exclusao : exclusao,
                cod_recurso : cod_recurso,
                cod_grupo : cod_grupo,
                acao : acao
            },
            success: function(msg){
                try {
                    $("#progress").hide();
                    if (msg.indexOf("Exception: ") != -1) {
                        msg = msg.replace("Exception: ", "");
                        showMessage(ERROR_MESSAGE, msg);
                        return;
                    }
                    if (acao == 'cadastrar') {
                        listarPermissoes();
                    } else if (acao == 'excluir') {
                        var botao = $('#' +cod_permissao).children("td:first");
                        tabela_permissao.fnDeleteRow(tabela_permissao.fnGetPosition(botao[0])[0]);
                    }
                    $("#recurso").dialog('close');
                } catch(e) {
                    reportCrash(null, e.name, e.stack);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $("#progress").hide();
                reportCrash(XMLHttpRequest, textStatus, errorThrown);
            }
        });
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

function verificarPermissao(recurso, campo, permissao) {
    try {
        $.ajax({
            type: "POST",
            url : "../controllers/PermissaoController.php",
            data : {
                cod_grupo : usuario_logado.cod_grupo,
                recurso : recurso,
                acao : 'consultar'
            },
            success: function(msg){
                try {
                    if (!(msg instanceof XMLDocument)) {
                        msg = msg.replace("Exception: ", "");
                        showMessage(ERROR_MESSAGE, msg);
                        return;
                    }
                    var result = $(msg).find(permissao).text();
                    if (result == 'N') {
                        $('#' + campo).remove();
                    }
                } catch(e) {
                    reportCrash(null, e.name, e.stack);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                reportCrash(XMLHttpRequest, textStatus, errorThrown);
            }
        });
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

function listarPermissoes() {
    try {
        $("#listagem_permissao").load('permissao.html', null);
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}